package com.xian;

import java.util.Random;

/**
 * 需求:
 * 定义方法实现随机产生一个5位的验证码，每位可能是数字、大写字母、小写字母。
 * <p>
 * 分析:
 * 定义一个方法，生成验证码返回:
 * ①方法参数是位数、方法的返回值类型是String.
 * ②在方法内部使用for循环生成指定位数的随机字符，并连接起来。
 * ③把连接好的随机字符作为一组验证码进行返回。
 * 心
 */

public class Test3 {
    public static void main(String[] args) {
        String code = createCode(5);
        System.out.println(code);

    }

    public static String createCode(int n) {
        String code = "";
        Random r = new Random();
        for (int i = 0; i < n; i++) {
            int type = r.nextInt(3);//0  1  2
            switch (type) {
                case 0:
                    //大写 (A 65 -Z  65+25)  (0-25)+65
                    char ch = (char) (r.nextInt(26) + 65);
                    code += ch;
                    break;
                case 1:
                    //小写(A 97 -Z  97+25)  (0-25)+97
                    char ch1 = (char) (r.nextInt(26) + 97);
                    code += ch1;
                    break;
                case 2:
                    //数字
                    code += r.nextInt(10); ///0-9
                    break;
            }

        }
        return code;
    }
}
